package com.quectel.core.module.propertybill.vo;

import com.quectel.core.module.propertybill.dto.PropertyChargeableListActivityDto;
import com.quectel.core.module.propertybill.dto.PropertyChargeableListDto;
import com.quectel.core.module.village.dto.VillageRoomDto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * @author zhangheng
 * @email nolan.zhang@quectel.com
 * @date 2023/4/13 9:56
 * @description 收费项目收费详情
 */
@Data
@Schema
public class PropertyBillAmountVo implements Serializable {

    @Schema(description = "房间信息")
    private VillageRoomDto villageRoom;

    @Schema(description = "收费标准")
    private PropertyChargeableListDto propertyChargeableList;

    @Schema(description = "活动详情")
    private PropertyChargeableListActivityDto propertyChargeableListActivity;

    @Schema(description = "账单时间周期")
    private PropertyBillCycleDateInfoVo billCycleDateInfoVo;

    @Schema(description = "应缴总额=总金额-折扣金额 + 滞纳金金额")
    private BigDecimal totalAmount;

    @Schema(description = "项目总金额")
    private BigDecimal itemTotalAmount;

    @Schema(description = "折扣金额,在总金额的基础上折扣或者扣除规定金额")
    private BigDecimal discountAmount;

    @Schema(description = "滞纳金总金额")
    private BigDecimal overdueAmount;

    @Schema(description = "赠送礼品详情,type=2")
    private List<PropertyChargeableListActivityVo> giftList;

    @Schema(description = "项目收费详情")
    private List<PropertyChargeableItemAmountVo> chargeableItemAmountVos;
}
